package com.kaisu.blog.web.user.convert;

import com.kaisu.blog.application.user.dto.*;
import com.kaisu.blog.web.user.request.UserCreateRequest;
import com.kaisu.blog.web.user.request.UserUpdateRequest;
import com.kaisu.blog.web.user.vo.FollowVO;
import com.kaisu.blog.web.user.vo.LoginVO;
import com.kaisu.blog.web.user.vo.RoleVO;
import com.kaisu.blog.web.user.vo.UserVO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.MappingConstants;

/**
 * @author kaisu
 */
@Mapper(componentModel = MappingConstants.ComponentModel.SPRING)
public interface UserWebConvert {
    LoginVO toVO(LoginDTO dto);

    UserVO toVO(UserDTO dto);

    RoleVO map(RoleDTO dto);

    UserCreateDTO toDTO(UserCreateRequest request);

    UserUpdateDTO toDTO(UserUpdateRequest request);

    FollowVO toVO(FollowDTO dto);
}
